﻿#include <iostream>
#include <stack>
#include <unordered_map>
#include <string>

bool isBalanced(std::string sequence) {
    std::stack<char> s;
    std::unordered_map<char, char> b_map = { {')', '('}, {']', '['}, {'}', '{'}, {'>', '<'} };

    for (char c : sequence) {
        if (b_map.find(c) == b_map.end()) {
            s.push(c);
        }
        else {
            if (s.empty() || b_map[c] != s.top()) {
                return false;
            }
            s.pop();
        }
    }

    return s.empty();
}

int main() {
    std::string input_seq;
    std::cout << " Введите скобочную последовательность: ";
    std::cin >> input_seq;

    std::cout << std::boolalpha << isBalanced(input_seq) << std::endl;

    return 0;
}